package Exception;

public class ThrowDemo {
    public static void main(String[] args) {
        Person p = new Person();
        try {
            p.setAge(1100);
        } catch (Exception e) {
            e.printStackTrace();// 输出错误信息         输出堆栈跟踪信息  向控制台输出异常信息     第一个at是原发位置   第二个是调用位置    只看自己定义的类
           System.out.println(e.getMessage());//
        } /**  当我们调用一个含有throws 声明异常抛出的方法时，编译器要求必须处理该异常  方法如下
         使用try-catch捕获并处理该异常
         在当前方法中继续使用throws声明对该异常的抛出
         注意：具体选择哪种放方式，取决于责任问题。
         记住 永远不要再主方法中抛异常 也就是throws*/
        System.out.println("此人年龄为"+p.getAge());  //在上方catch中解决完了以后，此处的代码会继续执行
    }
}
//java异常可以分为可检测异常，非检测异常
//RuntimeException  非检测异常 因为普通JVM操作引起的运行时异常随时可能发生，此类异常一般由特定操作引起 ，但这些操作在java应用程序中会频繁出现，因此它们不受编译器检查与处理或声明规则限制
//异常分类：检查异常和非检查异常
//要求必须处理的
//非检查异常 ，一般为逻辑异常，都是bug，都是可以通过代码逻辑在规避的，不要求必须处理

